package cate.common.table.d;

import easy.java.dev.note.NoteClass;
import easy.java.dev.note.NoteField;

public class GDObj {

    public static final String SPLIT_PATTERN = ":";

    public static final String AND_PATTERN = "#";

    public static String getMixResStr(byte type, int id, long num) {
        return type + SPLIT_PATTERN + id + SPLIT_PATTERN + num;
    }

    public static class Type {
        @NoteField("数值资源")
        public static final byte NUM = 0;

        @NoteField("英雄")
        public static final byte HERO = 1;

        @NoteField("装备")
        public static final byte EQUIP = 2;

        @NoteField("道具")
        public static final byte PROP = 3;

        @NoteField("碎片")
        public static final byte HERO_PART = 4;

        @NoteField("徽章")
        public static final byte RUNE = 5;

        @NoteField(value = "星格")
        public static final byte SPICE = 6;

        @NoteField("灵器")
        public static final byte FAIRY = 7;

        @NoteField("仓库")
        public static final byte STOREHOUSE = 8;

        @NoteField("觉醒灵器")
        public static final byte AWAKEN_FAIRY = 9;

        @NoteField("厨具")
        public static final byte KITCHENWARE = 10;

        @NoteField("手办")
        public static final byte FURNITURE = 13;

        @NoteField("[虚拟对象]指定星级de英雄")
        public static final byte HERO_OF_STAR = 51;

        @NoteField("[虚拟对象]指定星级阵营de英雄")
        public static final byte HERO_OF_STAR_CAMP = 52;

        @NoteField("[虚拟对象]指定星级de光暗英雄")
        public static final byte HERO_OF_STAR_NIUBI_CAMP = 53;

        @NoteField("[虚拟对象]指定星级的自然系英雄")
        public static final byte HERO_OF_NATURE_CAMP = 54;

        @NoteField("[虚拟对象]指定星级的光暗魂晶")
        public static final byte HERO_OF_NIUBI_SOUL = 55;

        @NoteField("[虚拟对象]指定数量和范围的可替代物品")
        public static final byte ITEM_LIST_ALL_AVAILABLE = 61;

        @NoteField("宝石")
        public static final byte GEM = 19;

        @NoteField("铭文")
        public static final byte INSCRIPTION = 20;

        @NoteField("[虚拟对象]指定原型de英雄")
        public static final byte HERO_OF_PROTO = 99;

        public static String name(byte t) {
            switch (t) {
                case NUM:
                    return "数值资源";
                case HERO:
                    return "英雄";
                case EQUIP:
                    return "装备";
                case PROP:
                    return "道具";
                case HERO_PART:
                    return "碎片";
                case RUNE:
                    return "徽章";
                case SPICE:
                    return "星格";
                case FAIRY:
                    return "灵器";
                case STOREHOUSE:
                    return "仓库";
                case HERO_OF_STAR:
                    return "[虚拟对象]指定星级de英雄";
                case HERO_OF_STAR_CAMP:
                    return "[虚拟对象]指定星级阵营de英雄";
                case HERO_OF_PROTO:
                    return "[虚拟对象]指定原型de英雄";
                case FURNITURE:
                    return "手办";
                case HERO_OF_STAR_NIUBI_CAMP:
                    return "[虚拟对象]指定星级de光暗英雄";
                case HERO_OF_NATURE_CAMP:
                    return "[虚拟对象]指定星级de自然系英雄";
                case HERO_OF_NIUBI_SOUL:
                    return "[虚拟对象]指定星级的光暗魂晶";
                case GEM:
                    return "宝石";
                case INSCRIPTION:
                    return "铭文";
                case AWAKEN_FAIRY:
                    return "觉醒灵器";
                case KITCHENWARE:
                    return "厨具";
                default:
                    return "unsupported";
            }
        }
    }

    @NoteClass("游戏对象-数值资源枚举")
    public static class Num {
        @NoteField("金币")
        public static final int M0 = 1;

        @NoteField("钻石")
        public static final int M1 = 2;

        @NoteField("主角经验")
        public static final int EXP = 3;

        @NoteField("友情点")
        public static final int FRIENDSHIP = 4;

        @NoteField("紫钻")
        public static final int DIAMAND = 5;

        @NoteField("协会贡献")
        public static final int P = 6;

        @NoteField("竞技积分")
        public static final int RACE_POINT = 7;

        @NoteField("英雄经验")
        public static final int HERO_EXP = 8;

        @NoteField("神庙古币")
        public static final int ISLAND_GOLD = 9;

        @NoteField("情报值")
        public static final int INFO_VALUE = 17;

        @NoteField("运势")
        public static final int FORTUNE = 12;

        @NoteField(value = "食灵之魄")
        public static final int HERO_SOUL = 19;

        @NoteField(value = "特训积分")
        public static final int ST_POINT = 20;

        @NoteField("王座积分")
        public static final int THRONE_POINT = 25;

        @NoteField(value = "冠军积分")
        public static final int CHAMPION_RACE_POINT = 38;

        @NoteField("功勋")
        public static final int GUILD_POINT = 44;

        @NoteField("VIP积分")
        public static final int VIP_POINT = 45;

        @NoteField("幸运福袋积分")
        public static final int LUCKY_SCORE = 49;

        @NoteField(value = "日常活跃度")
        public static final int DAILY_ACTIVE = 100;

        @NoteField(value = "周常活跃度")
        public static final int WEEK_ACTIVE = 101;

        @NoteField(value = "王座银币",detail = "竞猜货币")
        public static final int TB_BET_COIN = 996;

        public static final int GUILD_HONOR = 998;
        public static final int GUILD_EXP = 999;

        public static String name(int t) {
            switch (t) {
                case M0:
                    return "金币";
                case M1:
                    return "钻石";
                case EXP:
                    return "主角经验";
                case P:
                    return "协会贡献";
                case HERO_EXP:
                    return "食灵经验";
                case FRIENDSHIP:
                    return "友情点";
                case VIP_POINT:
                    return "VIP积分";
                case DAILY_ACTIVE:
                    return "日活跃度";
                case WEEK_ACTIVE:
                    return "周活跃度";
                case HERO_SOUL:
                    return "食灵之魄";
                case FORTUNE:
                    return "运势";
                case ISLAND_GOLD:
                    return "神庙古币";
                case GUILD_HONOR:
                    return "公会荣誉";
                case GUILD_EXP:
                    return "公会经验";
                case CHAMPION_RACE_POINT:
                    return "冠军积分";
                default:
                    break;
            }
            return "unsupported";
        }
    }

    @NoteClass("数值资源分组")
    public static class NumSmallType {
        @NoteField("战令积分")
        public static final int WAR_ORDER_EXP = 1;
    }
}
